home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 7 / PC World Interactive 7.iso / program / cprog.EXE / VESA2.TXT < prev    next >
Text File  |  1995-09-23  |  6KB  |  99 lines

  1.  ┌──────────────────────────────────────────────────────────────────────────┐
  2.  │┌────────────────────────────────────────────────────────────────────────┐│
  3.  ││                                                                        ││
  4.  ││                Yuvarlak Köƒe ■ VESA kartlarì II                        ││
  5.  ││                                                                        ││
  6.  │└────────────────────────────────────────────────────────────────────────┘│
  7.  │ PS 26 · Eylül'95                                       Alex PAMIR        │
  8.  └──────────────────────────────────────────────────────────────────────────┘
  9.  
  10.  
  11.  
  12.          ÿyi günler sevgili Yuvarlak Köƒe okurlarì. Alemin en matrak
  13.   köƒelerinden biri olan yuvarlak köƒe bu ay da sizlerle.
  14.   Bu ay geçen aydan kalan VESA konusunu incelemeye devam edeceºiz.
  15.  
  16.  
  17.          Geçen ay gördüºümüz kadarìyla artìk bilgisayarìmìzdaki Super VGA
  18.   kartìnìn VESA uyumunu ve desteklediºi modlarì tesbit etmeyi öºrendik.
  19.   Bu ay da bu modlarda ekrana nasìl eriƒeceºimizi örnekli bir ƒekilde
  20.   göreceºiz. Listemizdeki ekran modlarìndan istediºimiz birini seçtiºimizde,
  21.   ekranì bu mod'da açmadan önce kontrol etmemiz gereken bir nokta daha var.
  22.   Bu da monitörümüzün bu ekran modunu gösterip göstermeyeceºidir.
  23.   Aslìnda bunu bilgisayarì alìrken satìcìnìn bize verdiºi bilgiden yahut
  24.   monitörün kullanìm kìlavuzundan öºrenebiliriz ama bu bilgilere ben pek
  25.   güvenmem. Bunu yazìlìm olarak anlamanìn yolu ise programìmìzdaki
  26.   modbuf.modeflag baytìnìn diºer bir bitini kontrol etmekle olur (0.bit).
  27.   Bu kontrol yapìldìktan sonra VESA BIOS'unun 02H numaralì fonksiyonunu
  28.   çaºìrarak istediºimiz modda ekranì açabiliriz.
  29.  
  30.  ┌──────────────────────────────────────────────────────────────────────╖
  31.  │   Interrupt 10h  Function 4Fh                                        ║
  32.  │                                                                      ║
  33.  │       AH : 4Fh                                                       ║
  34.  │       AL : 02h                                                       ║
  35.  │       BX : istenen modun numarasì (15. biti 1 olursa Video RAM'de    ║
  36.  │            eskiden bulunan grafik datasì silinmez)                   ║
  37.  ╘══════════════════════════════════════════════════════════════════════╝
  38.  
  39.   Modu açtìktan sonra mutlaka bunu test etmemiz gerekir. Bunu da ya interrupt
  40.   dönüƒü AH'a ve AL'a bakarak yapabiliriz, ki AH'da 00h ve AL'da 4Fh varsa
  41.   tamam demektir; veya VESA BIOS'un 03h numaralì fonksiyonunu kullarak
  42.   ekranìn ƒu anki modunu öºrenip bizim istediºimizle karƒìlaƒtìrìrìz.
  43.   03h fonksiyonu ƒöyledir:
  44.  
  45.  ┌────────────────────────────────────────────────────────────────────────╖
  46.  │   Interrupt 10h  Function 4Fh                                          ║
  47.  │       AH : 4Fh                                                         ║
  48.  │       AL : 03h                                                         ║
  49.  │                                                                        ║
  50.  │   Dönüƒte:                                                             ║
  51.  │       BX : istenen modun numarasì                                      ║
  52.  │                                                                        ║
  53.  ╘════════════════════════════════════════════════════════════════════════╝
  54.  
  55.   Modumuz artìk hazìr olduºuna göre artìk tek yapmamìz gereken ekran
  56.   hafìzasìna bilgi yazìp bunu ekranda görmek. Fakat kazìn ayaºi... pardon
  57.   VESA'nìn hafìzasì öyle deºil. Bildiºiniz gibi SVGA kartlarìnìn 2MB, 4MB
  58.   gibi 256 KB 'dan daha büyük hafìzalarì olabiliyor. Fakat bizim hafìzada
  59.   ekranì adresleyebildiºimiz bölge sadece A000:0000'dan B000:0000'a kadar olan
  60.   64KB'lìk bölge. Ekran büyüklüºü 64KB'dan az hafìza gerektiren modlar için
  61.   fazla bir sorun yok. En fazla sayfa deºiƒtirme problemi çìkabilir. Fakat
  62.   640x480x256 gibi büyük modlar için biz ne yapacaºìz. Bunun çözümü, bizim
  63.   64KB'lìk bölgeyi ekran hafìzasìna karƒìlìklì iliƒkilendirmek. Böylece biz
  64.   bilgisayara, ben kendi hafìza bölgemi ekran hafìzasìnìn ƒu ƒu bölgesi
  65.   olarak kullanmak istiyorum dedikten sonra o bölgeyi kullanmakla sorun
  66.   hallediliyor. Buna "page framing" adì veriliyor ve özellikle EMS hafìza
  67.   adreslemesinde kullanìlìyor. Bu sistemin tek dezavantajì tek komutta en
  68.   fazla çerçevemiz kadar bilgi gönderebilmemiz. Bu yüzden 64K'dan büyük
  69.   ekranlar ancak birkaç seferde çizilebiliyor. VESA'da bu çerçeveye "Access
  70.   window" yani eriƒim penceresi deniyor. Bu eriƒim penceresini kullanmak
  71.   için ise 05h numaralì alt fonksiyon kullanìlìyor. Kullanìmdaki bir önemli
  72.   özellik de pencerenin hareket oranì. Bu oranìn katlarì olarak belirlenen
  73.   adres deºiƒikliºiyle pencerenin Video RAM'daki yeri belirleniyor.
  74.   Yani eºer oran 1K ise DX registerìna konulan 128 deºeri ekran hafìzasìnìn
  75.   128K'dan baƒlamasì gerektiºi anlamìna geliyor. Bir de bazì kartlarda iki
  76.   eriƒim penceresi olabiliyor; biri yazmak diºeri okumak için. O an yapìlacak
  77.   iƒleme göre o numaralì pencerenin yerinin deºiƒmesi gerekir. Hangi
  78.   pencerenin ne iƒe yaradìºì da o pencerenin pencere bilgileri word'ünün
  79.   bitlerine bakìlarak anlaƒìlìr. 0. bit, pencerenin olup olmadìºìnì (1= var),
  80.   1. bit okunabilir olup olmadìºìnì (1=okunabilir), 2. bit yazìlabilir olup
  81.   olmadìºìnì (1=yazìlabilir) gösterir. Deºerler ƒöyle:
  82.  
  83.  ┌──────────────────────────────────────────────────────────────────────────╖
  84.  │                                                                          ║
  85.  │    Interrupt 10h  Function 4Fh                                           ║
  86.  │                                                                          ║
  87.  │        AH : 4Fh                                                          ║
  88.  │        AL : 05h                                                          ║
  89.  │        BH : 00h                                                          ║
  90.  │        BL : eriƒim penceresi numarasì (0 veya 1)                         ║
  91.  │        DX : eriƒim bölgesi adresi (hareket orani ile çarìlìp asìl degeri ║
  92.  │                                    oluƒturur)                            ║
  93.  ╘══════════════════════════════════════════════════════════════════════════╝
  94.  
  95.         Elimizdeki bu bilgilerle VESA modundaki bir SVGA karta nasìl eriƒim
  96.   yapìlacaºìnì geçen ayki örneºin geliƒtirilmiƒi olan bu ayki örnekte
  97.   görebilirsiniz.
  98.  
  99.   Gelecek ay buluƒuncaya kadar size iyi programlamalar.